package cn.ac.iscas.domain.component.reader;

import cn.ac.iscas.domain.common.EtlColumn;
import com.iscas.datasong.lib.common.DataSongException;

import java.util.List;
import java.util.Map;

/**
 * 数据源组件接口定义
 *
 *
 */
public interface IReaderComponent {

    /**
     * 组件须具有不带参数的实例化方法，通过该接口进行初始化   todo：或者去掉该方法，统一通过构造参数传参？
     * @param parameters
     * @return
     */
    boolean init(Map<String, Object> parameters) throws DataSongException;

    /**
     * 获取reader的表头信息
     * @return
     */
    List<EtlColumn> getHeader();


    /**
     * 获取reader的示例数据
     * @param count 示例的条数，默认可以取5
     * @return
     */
    List<Map<String,Object>> getSampleData(int count);
}
